Use std::iter repeat to generate indentation level
authorDavid Davidović <geosoft.corp@gmail.com>
Wed, 24 Dec 2014 20:37:56 +0000 (21:37 +0100)
committerDavid Davidović <geosoft.corp@gmail.com>
Wed, 24 Dec 2014 20:37:56 +0000 (21:37 +0100)
src/cargo/util/profile.rs

index e1c7ee2784a2e427874f550a970ca4577ebf6f52..e0eae9dac543f190e8cf6535f6e825686f8ecddb 100644 (file)
@@ -2,6 +2,7 @@ use std::os;
 use std::mem;
 use std::fmt::Show;
 use time;
+use std::iter::repeat;
 use std::cell::RefCell;
 
 thread_local!(static PROFILE_STACK: RefCell<Vec<u64>> = RefCell::new(Vec::new()));
@@ -38,13 +39,8 @@ impl Drop for Profiler {
                 let mut last = 0;
                 for (i, &(l, time, ref msg)) in msgs.iter().enumerate() {
                     if l != lvl { continue }
-
-                    let mut spaces = String::new();
-                    for _ in range(0u, lvl + 1) {
-                        spaces.push_str("    ");
-                    }
-
-                    println!("{} {:6}ms - {}", spaces, time / 1000000, msg);
+                    println!("{} {:6}ms - {}", repeat("    ").take(lvl + 1).collect::<String>(),
+                        time / 1000000, msg);
 
                     print(lvl + 1, msgs.slice(last, i));
                     last = i;